const { mongodb, ObjectId } = require("../config/mongodb");
const collectionName = "users"; //users表
class UsersModel {
    constructor() {}
        // login(body) {
        //     return new Promise((resolve, reject) => {
        //         //回调 通过then  获取数据
        //         mongodb
        //             .getPromiseCollection(collectionName)
        //             .then(async(array) => {
        //                 const [collection, client] = array;
        //                 try {
        //                     const res = await collection.find(body).toArray();
        //                     resolve(res);
        //                 } catch (err) {
        //                     reject(err.message); //这是执行操作语句可能出现的错误
        //                 } finally {
        //                     client.close(); //操作完,最后关闭连接
        //                 }
        //             })
        //             .catch((err) => reject(err.message)); //这是可能出现的连接错误
        //     });
        // }
    findById(id) {
        return mongodb.findById(collectionName, id);
    };
    findByUsername(username) {
        return new Promise((resolve, reject) => {
            //回调函数式获取数据
            mongodb.getCollection(collectionName, async(err, collection, client) => {
                if (err) reject(err.message); //这是回调传过来的可能出现的连接错误
                try {
                    const res = await collection.find({ username }).toArray();
                    resolve(res);
                } catch (err) {
                    reject(err.message); //这是执行操作语句可能出现的错误
                } finally {
                    client.close(); //操作完,最后关闭连接
                }
            });
        });
    }
    login(data) {
        return new Promise((resolve, reject) => {
            //回调函数式获取数据
            mongodb.getCollection(collectionName, async(err, collection, client) => {
                if (err) reject(err.message); //这是回调传过来的可能出现的连接错误
                try {
                    const res = await collection.find(data).toArray();
                    resolve(res);
                } catch (err) {
                    reject(err.message); //这是执行操作语句可能出现的错误
                } finally {
                    client.close(); //操作完,最后关闭连接
                }
            });
        });
    };
    reg(data) {
        return new Promise((resolve, reject) => {
            //回调函数式获取数据
            mongodb.getCollection(collectionName, async(err, collection, client) => {
                if (err) reject(err.message); //这是回调传过来的可能出现的连接错误
                try {
                    const res = await collection.insertOne(data);
                    resolve(res);
                } catch (err) {
                    reject(err.message); //这是执行操作语句可能出现的错误
                } finally {
                    client.close(); //操作完,最后关闭连接
                }
            });
        });
    };
}

module.exports = new UsersModel();